package common.simulation;

import common.configuration.CyclonConfiguration;
import common.configuration.AggregationConfiguration;
import common.configuration.TManConfiguration;
import common.configuration.MonitorConfiguration;
import se.sics.kompics.Init;
import se.sics.kompics.address.Address;
import se.sics.kompics.p2p.bootstrap.BootstrapConfiguration;

public final class SimulatorInit extends Init {

    private final BootstrapConfiguration bootstrapConfiguration;
    private final CyclonConfiguration cyclonConfiguration;
    private final TManConfiguration tmanConfiguration;
    private final AggregationConfiguration aggregationConfiguration;
    private MonitorConfiguration monitorConfiguration;
	private final Address peer0Address;

//-------------------------------------------------------------------	
    public SimulatorInit(BootstrapConfiguration bootstrapConfiguration,
            CyclonConfiguration cyclonConfiguration, TManConfiguration tmanConfiguration,
            AggregationConfiguration aggregationConfiguration, Address peer0Address) {
        super();
        this.bootstrapConfiguration = bootstrapConfiguration;
        this.cyclonConfiguration = cyclonConfiguration;
        this.tmanConfiguration = tmanConfiguration;
        this.aggregationConfiguration = aggregationConfiguration;
        this.peer0Address = peer0Address;
    }
    
  //-------------------------------------------------------------------	
    public SimulatorInit(BootstrapConfiguration bootstrapConfiguration,
            CyclonConfiguration cyclonConfiguration, TManConfiguration tmanConfiguration,
            AggregationConfiguration aggregationConfiguration, MonitorConfiguration monitorConfiguration, Address peer0Address) {
        super();
        this.bootstrapConfiguration = bootstrapConfiguration;
        this.cyclonConfiguration = cyclonConfiguration;
        this.tmanConfiguration = tmanConfiguration;
        this.aggregationConfiguration = aggregationConfiguration;
        this.monitorConfiguration = monitorConfiguration;
        this.peer0Address = peer0Address;
    }

    public AggregationConfiguration getAggregationConfiguration() {
        return aggregationConfiguration;
    }

//-------------------------------------------------------------------	
    public BootstrapConfiguration getBootstrapConfiguration() {
        return this.bootstrapConfiguration;
    }

//-------------------------------------------------------------------	
    public CyclonConfiguration getCyclonConfiguration() {
        return this.cyclonConfiguration;
    }

//-------------------------------------------------------------------	
    public TManConfiguration getTmanConfiguration() {
        return this.tmanConfiguration;
    }
    
//-------------------------------------------------------------------	
    public MonitorConfiguration getMonitorConfiguration() {
        return this.monitorConfiguration;
    }
    
//-------------------------------------------------------------------
	public Address getPeer0Address() {
		return peer0Address;
	}

}
